/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.documentar.interfacee;

/**
 *
 * @author Santos
 * @param <M> model a ser utilizado
 */
public interface InterfaceView<M> {

    /**
     * Metodo responsável por carregar os dados para edição
     */
    public void CarregarEditarDados();

    /**
     * Metodo responsável por carregar os dados de um novos registros
     */
    public void CarregarNovoDados();

    /**
     * Metodo responsável por carregar os dados para inclusão
     */
    public void CarregarExcluirDados();

    /**
     * Metodo responsável por cancelar a opção corrente
     */
    public void CancelarOperacao();

    /**
     * Metodo responsável por carregar os dados do formulário na classe model
     */
    public void CarregarVariaveis();

    /**
     * Metodo responsável por chamar a rotina de gravação dos dados
     */
    public void GravarDados();

    /**
     * Metodo responsável por limpar os campos da aplicação
     */
    public void LimparCampos();

    /**
     * Metodo responsável por Movimentar as abas
     *
     * @param Movimento
     */
    public void ProximaAba(String Movimento);

    /**
     * Metodo resposável por definir o tamanho do jTable
     */
    public void TamanhoColunaTable();

    /**
     * Metodo responsável por acionar as consultas da aplicação
     */
    public void Consultar();

    /**
     * Metodo responsável por fazer commit dos campos quando necessário força a
     * perda do foco
     */
    public void CommitCampos();

    /**
     * Metodo resposável por inicializar todos o Listener do sistema
     */
    public void InicializarListener();

    /**
     * Metodo responsável por armazena os metodos necessários para inicialização
     * do sistema
     */
    public void Start();

    /**
     * Metodo responsável por armazena a validação de cada campo do formulário
     *
     * @return Retorna True se estive tudo ok False se tive algo errado
     */
    public boolean ValidaCampos();

    /**
     * Metodo responsável por carregar os dados do comboBox
     *
     * @param model Classe que está sendo trabalhada
     * @param actionScript Ação do script
     */
    public void CarregarDadosComboBox(M model, String actionScript);

    /**
     * Metodo responsável por definir a entrada de dados de cada campo do
     * formulário
     */
    public void setFiltroCampo();

}
